
/*
 * Copyright 2013 Wajdi Hh "wajdihh@gmail.com".
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.hh.utility;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Looper;
import android.util.Log;

public class PuUtils {



	/**To display alert dialog 
	 * @author wajdihh
	 * Display dialog
	 * @param pContext
	 * @param pTitle
	 * @param pMessage
	 */
	public static void showMessage(Context pContext,String pTitle, String pMessage) {

		if(Looper.getMainLooper()==Looper.myLooper()){
			AlertDialog.Builder dialog = new AlertDialog.Builder(pContext);
			dialog.setTitle(pTitle);
			dialog.setMessage(pMessage);
			dialog.setNeutralButton("Ok", null);
			dialog.create().show();
		}else
			Log.e("ShowMessageLog", pTitle+" : "+pMessage);
	}

	/**
	 * to validate Hex format
	 * @author wajdihh
	 * * @param pHex
	 * * @return true is validate
	 */
	public static boolean isValidHex(String pHex){

		Pattern lPattern = Pattern.compile("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$");
		Matcher lMatcher = lPattern.matcher(pHex);
		return lMatcher.matches();


	}
	/**
	 * to query columns names of a Table from database
	 * @author wajdihh
	 * @param pDatabase
	 * @param pTableName
	 * @return list of columns
	 */
	public static ArrayList<String> getTableColumnsNames(SQLiteDatabase pDatabase,String pTableName){
		ArrayList<String> lListOfColumns=new ArrayList<String>();
		Cursor lCursor = pDatabase.rawQuery("PRAGMA table_info("+pTableName+")", null);
		while(lCursor.moveToNext())
			lListOfColumns.add(lCursor.getString(1));
		return lListOfColumns;
	}
	public static PuDate getCurrentDate(Context pContext){	

		Calendar lCalendar = Calendar.getInstance();
		int lDay = lCalendar.get(Calendar.DATE);
		int lMonth = lCalendar.get(Calendar.MONTH)+1;
		int lYear = lCalendar.get(Calendar.YEAR);

		return new PuDate(lMonth, lDay, lYear);
	}
}
